import { message } from 'element-ui'
// const fs = require('fs')
const importAll = require.context('@/apis', true, /(\.js)$/)

// export const a =12
// export default {
//     b:1
// }

// export 与 export default 在此接口文件只允许出现一种 因为 注册读取会被覆盖
// 手动引入一般是 import * as a from 'xxx' 会把 export 与 export default 两种读取
// a: 12
// default: {b: 1}

/**
 * api 接口集成对象初始化
 */
const api_list = Object.create(null)
function file_name(path) {
  const s1 = /\/(.+).js$/
  path.match(s1)
  return RegExp.$1
}
importAll.keys().map((path) => {
  const name =
    file_name(path).split('/').length > 1
      ? file_name(path).split('/').join('_')
      : file_name(path)
  const router = importAll(path).default || importAll(path)
  if (api_list[name]) {
    message.error('接口文件名字请不要重复')
    return
  }
  api_list[name] = router
})

/**
 * api 接口集成对象
 */
// fs.writeFileSync('./apis/api.json', JSON.stringify(api_list), 'utf-8')
export const api = Object.freeze(api_list)

export default {
  install(Vue) {
    Vue.prototype.$api = api
  }
}
